import java.util.Arrays;
import java.util.Scanner;

public class TestArray {
    //冒泡排序
    public static void bubbleSort(int[] array){
        boolean flg=false;
        for (int i = 0; i < array.length-1; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                if (array[j]>array[j]+1){
                    int tmp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=tmp;
                    flg=true;
                }
            }
            if (flg==false){
                break;
            }
        }
    }

    public static void main(String[] args) {
        int[] array = {13, 2, 56, 6, 74, 5, 7};
        bubbleSort(array);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");

        }
    }
    //二分查找
    public static int binarySearch(int[] array,int k){
        int left=0;
        int right= array.length-1;
        int mid=(left+right)/2;
        while (left<=right){
            if (array[mid]>k){
                right=mid-1;
            }
            if (array[mid]<k){
                left=mid+1;
            }
            if (array[mid]==k){
               return mid;
            }
        }
        return -1;
    }
    public static void main2(String[] args) {
        int[] array=new int[]{12,34,56,78,90};
        System.out.println(binarySearch(array, 56));
    }


    //调整数组顺序使得奇数位于偶数之前，调整之后，不关心大小顺序，数组：[1,2,3,4,5,6]，调整后可能是：[1, 5, 3, 4, 2, 6]
//    public static void main(String[] args) {
//        int[] array={1,2,3,4,5,6};
//        int i=0;
//        int j=array.length-1;
//       while (i<j){
//           while(i<j&&array[i]%2==0){
//               j--;
//           }
//           while (i<j&&array[j]%2!=0){
//               i++;
//           }
//          int tmp=array[i];
//           array[i]=array[j];
//           array[j]=tmp;
//       }
//        System.out.println(Arrays.toString(array));
//    }
    public static void swap(int[] array,int i,int j){
        int temp=array[i];
        array[i]=array[j];
        array[j]=temp;
    }
    //实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素乘以 2 ,设置到对应的数组元素上
    // 例如原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
    //扩大了新的数组没有改变原来数组的值
    public static int[] transform(int[] array){
        int[] temp=new int[array.length];
        for (int i = 0; i < array.length; i++) {
                temp[i]=array[i]*2;
        }
        for (int i = 0; i <temp.length ; i++) {
            System.out.print(temp[i]+" ");
        }
        System.out.println();
        return temp;
    }
    //扩大的是原来的数组，改变了原来数组的值
    public  static int[] transformfunc(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            arr[i]=arr[i]*2;
        }
        return arr;
    }

    public static void main1(String[] args) {
        int[] array={1,2,3};
       transform(array);

    }
}
